UE4 RPG游戏实战开发(六):背包系统 您所在的位置:网站首页 umg 动画 UE4 RPG游戏实战开发(六):背包系统

UE4 RPG游戏实战开发(六):背包系统

2023-05-03 08:50| 来源: 网络整理| 查看: 265

背包系统UMG

在这篇教程中,我要为角色开发一个背包系统,首先在开发这个功能的时候,我们得先知道在 UE 中如何去创建 UI,这里就必须要说到 UMG 了,它提供了许多的 UI 组件,例如最基本的 "文本(Textblock)","图片(UImage)", "进度条(ProcessBar)" 等等,如图:

UE4 RPG游戏实战开发(六):背包系统_UI

创建背包 UI

创建一个 UI 文件夹,用于存放项目所有 UMG 相关的文件,随后双击打开后右键创建一个 Widget Blueprint, 取名 UI_Inventory。

UE4 RPG游戏实战开发(六):背包系统_UI_02

打开背包事件

在游戏中打开背包需要添加按键事件,在这个工程就用 I 键来映射打开背包事件吧!在工程设置中添加打开背包事件,并用键盘 I 键来映射。

UE4 RPG游戏实战开发(六):背包系统_右键_03

打开角色蓝图,右键搜索 OpenBag 函数,然后 CreateWidget,选择上文中的 UI_Inventory,并显示鼠标。

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_04

布局

接下来,我们来完成背包的视图布局,首先给背包添加背景色,在画布中拖入 Border,调整大小,然后居中,

UE4 RPG游戏实战开发(六):背包系统_游戏开发_05

修改 Border 的背景色为灰色半透明,

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_06

在 Border 上再拖入 Canvas Panel 画布组件,用于绘制标题,背包关闭按钮,以及容器列表,步骤如下,

先设置标题,Anchors 向上居中设置关闭按钮,Anchors 向上居右,在 Button 上附加 Overlay UImage 组件,选择关闭 icon底部添加俩个按钮,使用道具按钮,以及丢弃道具按钮容器这里用到了俩个组件 "Scroll Box" 和 "Wrap Box",将 ScrollBox 添加进来,居中然后调整大小,再在其中加入 WrapBox 作为它的子视图

这样我们的背包界面就完成了,效果如图:

UE4 RPG游戏实战开发(六):背包系统_右键_07

组件的层次结构如图:

UE4 RPG游戏实战开发(六):背包系统_UI_08

另外,由于在蓝图中需要获取 UI 的控件变量,所以在创建的时候需要给控件命名,以及勾选成为可以获取的变量,如图:

UE4 RPG游戏实战开发(六):背包系统_右键_09

背包中将显示一个个的道具以及它的数量,道具将由 Wrap Box 作为容器将其显示出来,所以接下来我们要设计一下格子的 UI。

道具格子

道具的格子也通过 Widget 来创建,右键创建 Widget Blueprint,然后取名 UI_ItemCube, 设计如图所示,并且也需要对控件命名以及勾选成为变量:

UE4 RPG游戏实战开发(六):背包系统_UI_10

素材准备

接下来,我们从商城中去下载一些道具素材,如图:

UE4 RPG游戏实战开发(六):背包系统_UI_11

下载完毕后,还需要自己整理一些道具的 icon, 由于资源包里没有提供,所以我就自己在编辑器里截图了一些道具,如图:

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_12

导入到工程中,如图:

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_13

创建道具 Actor, 右键 Blueprint Class -> Actor, 取名 ItemPickUp_BP, 双击打开, 然后 Add Component 分别为 StaticMesh 和 Sphere Collosion, 如图:

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_14

创建一个枚举类型 LiquorType_E,用于分类道具:

UE4 RPG游戏实战开发(六):背包系统_游戏开发_15

给枚举补充类型,如图:

UE4 RPG游戏实战开发(六):背包系统_右键_16

回到 ItemPickUp_BP 中,添加俩个变量,类型分别是 LiquorType_E 和 Texture2D,如图:

UE4 RPG游戏实战开发(六):背包系统_UI_17

随后在 ItemPickUp_BP 文件上右键创建它的子类,Health_BP, 并给它的成员变量赋值和配置,步骤如下:

UE4 RPG游戏实战开发(六):背包系统_右键_18

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_19

UE4 RPG游戏实战开发(六):背包系统_右键_20

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_21

然后接下来就简单了,直接复制 Health_BP,并将剩余的道具配置完成,最终如图所示:

UE4 RPG游戏实战开发(六):背包系统_游戏开发_22

加载内容

道具对象创建好以后,我们在背包中先默认添加一些道具,这时候就需要一个数组来管理这些默认道具。

首先在编辑器中创建一个结构体 InventoryItemInfo_S,来定义背包道具格子:

UE4 RPG游戏实战开发(六):背包系统_右键_23

然后,打开玩家角色蓝图,定义一个数组变量,数组的类型为 InventoryItemInfo_S,然后添加三个默认值,作为玩家背包中的初始化商品:

UE4 RPG游戏实战开发(六):背包系统_游戏开发_24

数据有了,接下来就让它们显示在背包中吧!打开 UI_Inventory 的 Event Graph 来加载商品,蓝图逻辑如下:

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_25

编译保存,然后运行游戏中打开背包,你就能看到物品在背包中显示了,

UE4 RPG游戏实战开发(六):背包系统_游戏开发_26

最后,还要加上关闭背包的事件,给关闭按钮添加点击事件,并完成蓝图逻辑如下:

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_27

UE4 RPG游戏实战开发(六):背包系统_Unreal Engine_28

这样一个简单的背包就完成了,在后续的文章中,会对其进一步优化和完善。今天的文章到这里就结束拉,感谢~

我是杰少,如果您觉的我写的不错,那请给我 点赞+评论+收藏 后再走哦!

请你喝杯 ☕️ 点赞 + 关注哦~

阅读完记得给我点个赞哦,有👍 有动力关注公众号--- HelloWorld杰少,第一时间推送新姿势

最后,创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~**



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有